A virtualization technology is known that operates virtual computers called virtual machines (VMs) in information processing apparatuses, such as physical servers. For example, the virtual machines are deployed in physical machines in the course of a process of allocating resources to the virtual machines, creating disk images of the virtual machines, and then booting up the virtual machines. By combining such virtual machines, multiple virtual machines are sometimes packaged and then deployed as a virtual system that implements a single service.
Patent Document 1: Japanese Laid-open Patent Publication No. 2009-245316
Patent Document 2: International Publication Pamphlet No. WO 2011/117957
Patent Document 3: Japanese Laid-open Patent Publication No. 2007-140791
Patent Document 4: Japanese Laid-open Patent Publication No. 2002-278769
However, in the technology described above, there may sometimes be a case, as described below, in which it is not possible to deploy a virtual machine that depends on a service provided by another virtual machine.
Specifically, from among virtual systems, there is a virtual system that depends on a service provided by a process performed by another virtual system. This type of virtual system is not able to be deployed unless a counterpart virtual system on which the virtual system depends is booted up. However, that does not mean both virtual systems need to be simultaneously booted up.
For example, in a case in which a request a virtual system A to be deployed is received, if the virtual system A depends on a service performed by a virtual system B, the virtual system A is not able to be deployed unless the virtual system B has been booted up. Accordingly, even if an attempt to simultaneously boot up the virtual system A and the virtual system B is made, when a boot up of the virtual system B depends on the parameter of the resource that is allocated to the virtual system A, a deadlock may possibly occur in the deployment of the virtual system A and the virtual system B. Specifically, because acquiring of the parameter of the virtual system A fails when the virtual system B is booted up, the deployment of the virtual system B fails and thus the deployment of the virtual system A also fails.
In the above description, deployment of the virtual system that depends on a service performed by another virtual system has been described. However, because a deadlock is also occurs in a similar manner as in the virtual system described above even when a virtual machine that depends on a service provided by another virtual machine, the deployment of the virtual machine fails.